/* ** por compatibilidad se omiten tildes **
================================================================================
 TRABAJO PRACTICO 3 - System Programming - ORGANIZACION DE COMPUTADOR II - FCEN
================================================================================
  definicion de funciones del manejador de memoria
*/

#ifndef __MMU_H__
#define __MMU_H__

// inicializa el mmu
void mmu_inicializar();

// mapear una pagina nueva a la tarea
void mmu_mapear_pagina_libre(unsigned int dirVirtual, unsigned int cr3, unsigned int attrs, unsigned int nroTarea); 

typedef struct str_pd_entry {
	unsigned int	pt_addres:20;
	unsigned char	avl:3;
	unsigned char	g:1;
	unsigned char	ps:1;
	unsigned char	r:1;
	unsigned char	a:1;
	unsigned char	pcd:1;
	unsigned char	pwt:1;
	unsigned char	us:1;
	unsigned char	rw:1;
	unsigned char	p:1;

} __attribute__((__packed__, aligned (8))) pd_entry;


#endif	/* !__MMU_H__ */
